При создании приложения AppWizard умеет на основе известной таблицы создавать класс наследник от DaoRecordset. В него он помещает поля из таблицы и настраивает механизм обмена данными DoFieldExchange. Но то же самое мы можем сделать и в любой момент сами. Давайте создадим проект на базе диалогового окна. А теперь попробуем к нему добавить класс как наследник от CDaoRecordset.

После нажатия на ОК начнется стандартная процедура, где Вас спросят какой файл и таблица будет использоваться для создания класса.

После выбора у Вас сформируется класс с уже настроенным полями и механизмом обмена.
class CMySet : public CDaoRecordset
{
public:
CMySet(CDaoDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CMySet)
// Field/Param Data
//{{AFX_FIELD(CMySet, CDaoRecordset)
long m_column1;
CString m_column2;
CString m_column3;
CString m_column4;
//}}AFX_FIELD
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMySet)
public:
virtual CString GetDefaultDBName(); // Default database name
virtual CString GetDefaultSQL(); // Default SQL for Recordset
virtual void DoFieldExchange(CDaoFieldExchange* pFX); // RFX support
//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};
void CMySet::DoFieldExchange(CDaoFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CMySet)
pFX->SetFieldType(CDaoFieldExchange::outputColumn);
DFX_Long(pFX, _T("[КодАвтора]"), m_column1);
DFX_Text(pFX, _T("[Имя]"), m_column2);
DFX_Text(pFX, _T("[Фамилия]"), m_column3);
DFX_Text(pFX, _T("[Заметки]"), m_column4);
//}}AFX_FIELD_MAP
}
Обратите внимание, что там будет и доступ и таблица которая используется.
CString CMySet::GetDefaultDBName()
{
return _T("D:\\VС\\Biblio\\biblio.mdb");
}
CString CMySet::GetDefaultSQL()
{
return _T("[author]");
}
Не забудьте подключить afxdao.h так как проект на основе диалогового окна не подключает классы баз данных.
// MySet.h : header file // #include "afxdao.h" ////////////////////////// // CMySet DAO recordset